//app.js
//接口域名
const host = 'http://localhost:5260/api';

//封装请求方法
const request = function request(option) {
  var app = getApp();
  wx.request({
    url: host + option.url,
    data: option.data,
    method: option.method,
    header: {
      'content-type': 'application/json', // 默认值
      'Authorization': 'token ' + wx.getStorageSync('token'),
      "Access-TimeSpan": (new Date()).valueOf(),
      'userid': wx.getStorageSync('userid')
    },
    success: function (res) {
      if (typeof option.success == "function") {
        option.success(res);
      }
    },
    fail: function () {
      if (typeof option.fail == "function") {
        option.fail();
      }
    }
  });
};
App({
  onLaunch: function () {
    // 展示本地存储能力
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)
   
   // 登陆
    var that = this;
    wx.login({  
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        // console.log(res)
        wx.request({
          url: 'https://api.weixin.qq.com/sns/jscode2session?appid=wx9cc44b705f342057&secret=16ef56fca78e7f0c8a9f7fd54d09b6d2&js_code=' + res.code + '&grant_type=authorization_code',
          method: 'POST',
          success: function (r) {
            wx.request({
              url: host + '/auth/wxlogin',
              data: { 'wxopenid': r.data.openid },
              method: 'POST',
              success: function (res) {
                console.log(res)
                wx.setStorageSync('token', res.data.token);
                wx.setStorageSync('userid', res.data.userinfo.UserID);         
              }
            })
          }
        })
      }
    })

   //获取用户信息
    wx.getUserInfo({
      success: res => {
        // 可以将 res 发送给后台解码出 unionId
        this.globalData.userInfo = res.userInfo
        // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
        // 所以此处加入 callback 以防止这种情况
        if (this.userInfoReadyCallback) {
          this.userInfoReadyCallback(res)
        }
      },
      fail: function () {
        wx.showModal({
          title: '提示',
          content: '请重新授权',
          success: function (res) {
            if (res.confirm) {
              // 重新发起授权
              wx.openSetting({
                success: (res) => {
                  wx.getUserInfo({
                    success: res => {
                      // 可以将 res 发送给后台解码出 unionId
                      that.globalData.userInfo = res.userInfo
                      // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
                      // 所以此处加入 callback 以防止这种情况
                      if (this.userInfoReadyCallback) {
                        that.userInfoReadyCallback(res)
                      }                      
                    }, fail: function () {
                      // 授权失败跳转到 待授权页面
                      wx.reLaunch({
                        url: '../logon/error/error',
                      })
                    }
                  })
                }
              })
            } else {
              // 授权失败跳转到 待授权页面
              wx.reLaunch({
                url: '../logon/error/error',
              })
            }
          }
        })
      }
    })
  },
  globalData: {
    userInfo: null
  },
  _request: function (option) {
    request(option);
  },
})